Flash memories have played an important role in modern electronic devices. A typical flash memory comprises a number of memory cells arranged in arrays for storing information data. The memory cell is configured to store charges with a floating gate, which corresponds to the logic values of the memory cell. The programming and erasure of the floating gate are accomplished through the tunneling of charges into or away from the floating gate across the surrounding insulating features. In addition, the data readout is performed by accessing voltage or current level of in the memory cell resulting from the charges in the floating gate.